package com.dragon.modules.yuegou.mapper.product;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dragon.modules.yuegou.entity.product.SpuEntity;
import com.dragon.modules.yuegou.model.product.Spu;
import com.dragon.modules.yuegou.query.product.SpuListQuery;
import com.dragon.modules.yuegou.query.product.SpuPackageQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 商品信息 Mapper接口
 *
 * @author pbuilder generated
 * @date 2019-09-29 16:03:08
 * @version 2.0
 */
@Component("proSpuMapper")
public interface SpuMapper extends BaseMapper<SpuEntity> {

	/**
	 * 分页查询商品列表
	 * */
	IPage<Spu> searchSpu(IPage<Object> page,@Param("query") SpuListQuery query);

	/**
	 * 查询套餐列表
	 * @param page
	 * @param query
	 * @return
	 */
	IPage<Spu> searchPackage(IPage<Object> page,@Param("query") SpuPackageQuery query);

    List<Spu> giftList(@Param("busdId") String busdId, @Param("title") String title,  @Param("type") Integer type);

	/**
	 * 到家热销商品的查询
	 * @param page
	 * @param btypeId
	 * @param name
	 * @return
	 */
    IPage<Spu> searchHostProductInfo(IPage<Spu> page, @Param("btypeId")String btypeId, @Param("name")String name,@Param("busdId")String busdId);

	/***
	 * 商户到家商品的查询
	 * @param page
	 * @param merchantId
	 * @return
	 */
	IPage<Spu> searchMerchantProductInfo(IPage<Object> page, @Param("merchantId")String merchantId);
	
	/***
	 * 红豆邮寄商品的查询
	 * @param page
	 * @param merchantId
	 * @return
	 */
	IPage<Spu> searchRedBeanProductInfo(IPage<Object> page, @Param("merchantId")String merchantId,@Param("spuName") String spuName);

	/**
	 * 查询商户前三个到家商品
	 * @param merchantId
	 * @return
	 */
    List<Spu> searchMerchantGoHomeThree(@Param("merchantId")String merchantId);

    /**
	 * 集团版商品管理-商品列表(可根据商户名称进行检索)
	 * */
	IPage<Spu> getProductList(IPage<Object> page,@Param("query") SpuListQuery query);

	/****
	 * 查询商户活动商品，最低价的前6个（拼团，秒杀，砍价，折扣）
	 * @param merchantId
	 * @return
	 */
	List<Spu> searchActiveList(@Param("merchantId")String merchantId);

	/**
	 * 添加总库存
	 * @param spuId
	 * @param addNum
	 * @param mBy
	 */
    void updateTotal(@Param("spuId")String spuId, @Param("addNum")Integer addNum, @Param("mBy")String mBy);
}

